package rothag.graphics;

import java.util.EnumMap;
import java.util.HashMap;
import rothag.enums.EtapeJeu;

/**
 * Classe contenant tous les paramètres de l'appli
 * @author Gaetan
 */
public class GraphicsParameters {

    // Tailles des différentes parties de l'écran
    public final static int mainWidth;
    public final static int mainHeight;
    public final static int infosJoueurWidth;
    public final static int infosJoueurHeight;
    public final static int partieWidth;
    public final static int partieHeight;

    // Dictionnaire définissant l'image à utiliser pour chaque étape du jeu
    public final static EnumMap<EtapeJeu, String> pathEtapeJeu;

    // Préfix de toutes les images
    public final static String prefix               = "/rothag/graphics/images/";

    // Chemins des images
    public final static String pathFond             = prefix + "fond.png";    
    // Images des ressources
    public final static String pathImgBois          = prefix + "partiegauche/ressource/resBois.png";
    public final static String pathImgFerDeLance    = prefix + "partiegauche/ressource/resFer.png";
    public final static String pathImgPierre        = prefix + "partiegauche/ressource/resPierre.png";
    public final static String pathImgPoterie       = prefix + "partiegauche/ressource/resPoterie.png";
    public final static String pathImgTissu         = prefix + "partiegauche/ressource/resTissus.png";
    // Images Nourriture/Bateau/Ouvrier/Piece du joueur
    public final static String pathImgNourriture    = prefix + "partiegauche/ressource/resFood.png";
    public final static String pathImgBateau        = prefix + "partiegauche/ressource/resBoat.png";
    public final static String pathImgOuvrier       = prefix + "partiegauche/ressource/resOuv.png";
    public final static String pathImgPiece         = prefix + "partiegauche/ressource/resPiece.png";
    // Images des cadres de gauche
    public final static String pathCadreDev         = prefix + "partiegauche/cadre/cadreDev.png";
    public final static String pathCadreRes         = prefix + "partiegauche/cadre/cadreRes.png";
    public final static String pathCadreScore       = prefix + "partiegauche/cadre/cadreScore.png";
    public final static String pathCadreDroit       = prefix + "cadreDroit.png";
    // Images des dés
    public final static String pathDesCranes        = prefix + "etape1/imgDesCranes.png";
    public final static String pathDesFood          = prefix + "etape1/imgDesFood.png";
    public final static String pathDesMonnaie       = prefix + "etape1/imgDesMonnaie.png";
    public final static String pathDesOuvFood       = prefix + "etape1/imgDesOuvFood.png";
    public final static String pathDesOuvriers      = prefix + "etape1/imgDesOuvriers.png";
    public final static String pathDesRessource     = prefix + "etape1/imgDesRessource.png";
    public final static String pathDesLegende       = prefix + "etape1/imgLegende.png";
    // Divers
    public final static String pathResOuv           = prefix + "etape2/resOuv.png";
    public final static String pathResFood          = prefix + "etape2/resFood.png";
    public final static String pathChoixOuvFood     = prefix + "etape2/imgDesOuvFood.png";
    // Images des désastres
    public final static String pathDesastrePeste      = prefix + "etape2/desastrePeste.png";
    public final static String pathDesastreInvasion   = prefix + "etape2/desastreInvasion.png";
    public final static String pathDesastreSecheresse = prefix + "etape2/desastreSecheresse.png";
    public final static String pathDesastreRevolte    = prefix + "etape2/desastreRevolte.png";
    public final static String pathDesastreVide       = prefix + "etape2/desastreVide.png";
    public final static String pathDesastreFamine     = prefix + "etape2/desastreFamine.png";

    // Images pour les constructions
    public final static String pathTraitConstruire  = prefix + "villes/trait.png";
    public final static String pathVilleDefaut      = prefix + "villes/villeDepart.png";
    public final static HashMap<Integer, String> pathVilles = new HashMap<Integer, String>();
    public final static HashMap<Integer, String> pathVillesOn = new HashMap<Integer, String>();
    public final static HashMap<Integer, String> pathMonuments = new HashMap<Integer, String>();

    // Images pour le commerce
    public final static String pathResCommerceTissu   = prefix + "commerce/resCommerceTissu.png";
    public final static String pathResCommerceFer     = prefix + "commerce/resCommerceFer.png";
    public final static String pathResCommercePierre  = prefix + "commerce/resCommercePierre.png";
    public final static String pathResCommerceBois    = prefix + "commerce/resCommerceBois.png";
    public final static String pathResCommercePoterie = prefix + "commerce/resCommercePoterie.png";
    // Image pour les développements
    public final static String pathResPieceDeveloppement = prefix + "developpement/resPiece.png";

    // Chemin de l'aide
    public final static String pathHelp = "/rothag/help/index.html";

    // Dimensions du cadre
    public final static int bigFrameBottomY = 420;
    public final static int smallFrameTopY  = 460;

    // Police
    public static String font = "Tahoma";

    // Nombre de bateaux
    public final static int nbBateaux = 5;

    /**
     * Constructeur static
     */
    static {
        // Taille de l'application
        mainWidth = 1024;
        mainHeight = 768;

        // Taille de la partie de gauche
        infosJoueurWidth = 265;
        infosJoueurHeight = mainHeight;

        // Taille de la partie de droite
        partieWidth = mainWidth - infosJoueurWidth;
        partieHeight = mainHeight;

        // Chemin des images des étapes du jeu
        pathEtapeJeu = new EnumMap<EtapeJeu, String>(EtapeJeu.class);
        pathEtapeJeu.put(EtapeJeu.LANCERDES,         prefix + "partiegauche/tour/cadreTour1.png");
        pathEtapeJeu.put(EtapeJeu.NOURRIR_SELECTION, prefix + "partiegauche/tour/cadreTour2.png");
        pathEtapeJeu.put(EtapeJeu.NOURRIR_INFOS,     prefix + "partiegauche/tour/cadreTour2.png");
        pathEtapeJeu.put(EtapeJeu.CONSTRUIRE,        prefix + "partiegauche/tour/cadreTour3.png");
        pathEtapeJeu.put(EtapeJeu.COMMERCE,          prefix + "partiegauche/tour/cadreTour4.png");
        pathEtapeJeu.put(EtapeJeu.DEVELOPPEMENT,     prefix + "partiegauche/tour/cadreTour5.png");
        pathEtapeJeu.put(EtapeJeu.DEFAUSSE,          prefix + "partiegauche/tour/cadreTour6.png");
        pathEtapeJeu.put(EtapeJeu.AUCUNE,            prefix + "partiegauche/tour/cadreTourVide.png");
        pathEtapeJeu.put(EtapeJeu.FIN_PARTIE,        prefix + "partiegauche/tour/cadreTourVide.png");

        // Chemin des villes
        pathVilles.put(3, prefix + "villes/ville3.png");
        pathVilles.put(4, prefix + "villes/ville4.png");
        pathVilles.put(5, prefix + "villes/ville5.png");
        pathVilles.put(6, prefix + "villes/ville6.png");

        pathVillesOn.put(3, prefix + "villes/ville3on.png");
        pathVillesOn.put(4, prefix + "villes/ville4on.png");
        pathVillesOn.put(5, prefix + "villes/ville5on.png");
        pathVillesOn.put(6, prefix + "villes/ville6on.png");

        // Chemin des monuments
        pathMonuments.put(1,prefix + "villes/monument.png");
        pathMonuments.put(2,prefix + "villes/monument2j.png");
        pathMonuments.put(3,prefix + "villes/monument3j.png");
        pathMonuments.put(4,prefix + "villes/monument.png");        
    }
}
